home *** CD-ROM | disk | FTP | other *** search
- unit DockedControls3U;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- ComCtrls, ToolWin, StdCtrls, ImgList, ExtCtrls;
-
- type
- TForm1 = class(TForm)
- ToolBar1: TToolBar;
- ToolButton1: TToolButton;
- ToolButton2: TToolButton;
- ToolButton3: TToolButton;
- ToolButton4: TToolButton;
- ToolButton5: TToolButton;
- ImageList1: TImageList;
- Label1: TLabel;
- Panel1: TPanel;
- Image1: TImage;
- procedure ToolBar1MouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- procedure FormCreate(Sender: TObject);
- procedure ToolBar1EndDock(Sender, Target: TObject; X, Y: Integer);
- procedure FormGetSiteInfo(Sender: TObject; DockClient: TControl;
- var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.DFM}
-
- procedure TForm1.ToolBar1MouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- begin
- //Can do this for each control to stop undocking happening immediately,
- //but it is easier to write a single statement in the form's OnCreate handler
- { if Button = mbLeft then
- (Sender as TControl).BeginDrag(False)}
- end;
-
- procedure TForm1.FormCreate(Sender: TObject);
- begin
- Mouse.DragImmediate := False
- end;
-
- procedure TForm1.ToolBar1EndDock(Sender, Target: TObject; X, Y: Integer);
- begin
- //Make sure toolbar's Align property is reset when it gets docked in the form
- if (Sender is TToolBar) and (Target is TCustomForm) then
- TToolBar(Sender).Align := alTop
- end;
-
- procedure TForm1.FormGetSiteInfo(Sender: TObject; DockClient: TControl;
- var InfluenceRect: TRect; MousePos: TPoint; var CanDock: Boolean);
- begin
- CanDock := DockClient is TToolBar
- end;
-
- end.
-